Parser["control:checkboxgroup:default:Json2htmlParser:html"] = function(confs) {
	var s = "";
	for (var c in confs) {
		var conf = confs[c];
		var prop = conf.id ? Parser.props[conf.id] : {};
		Parser.log(JSON.stringify(conf));
		Parser.log(JSON.stringify(prop));
		Parser.parseDataProvider(conf.id);
		var required = Parser.parseValidator(conf.id);
		Parser.parseI18ntip(conf.id);
		var dpval = prop[prop["dataprovider"]];
		var data = {};
		data.id = conf.id;
		data.style = Parser.cssDisplay(prop.display)+(prop.style?prop.style:"")+(prop.margintop?"margin-top:"+prop.margintop:"");
		var transform = {"tag":"i"};
		var fmdcols = parseInt(conf.fmdcols);
		var cols = [1,fmdcols-1];
		if(fmdcols>3) {
			cols = [2,fmdcols-2];
		}
		transform.html = '<span class="label col-md-'+cols[0]+'"'
			+ (data.style ? ' style="'+data.style+'"' : '')
			+ '><p'
			+ (prop["i18ntip-"+Parser.lang] ? (' title="'+prop["i18ntip-"+Parser.lang]+'"') : '')
			+ (prop.hideLabel=='1' ? ' style="display:none;"' : '')
			+'>'
			+ (required ? '<span class="xh">*</span>' : '')
			+ prop["i18nname-"+Parser.lang]
			+ (prop["i18ntip-"+Parser.lang] ? ('&nbsp;<i class="glyphicon glyphicon-question-sign"></i>') : '')
			+'</p></span>'+
			'<span class="item cellborder col-md-'+cols[1]+'"><span id="'+conf.id+'" databinding="'+ prop.databinding+ '" class="checkboxgroupSpan '+(prop.classNames ? prop.classNames : '')+'"'+
			(data.style ? ' style="'+data.style+'"' : '')+
			'>'+
			'<label class="checkbox-inline" ng-repeat="i in m.enu[\''+conf.id+'\']">' +
			'<input type="checkbox"' +
			 (prop.disabled=='1' ? ' disabled="disabled"' : '')+
			' value="{{i[0]}}" onclick="fmdf.onchangeOfCheckboxgroup(event,\''+conf.id+'\')"' +
			'/>{{i[1]}}</label>'+
			'</span></span>';
		var wrapper = json2html.transform(data, transform);
		s += wrapper.substr(0, wrapper.length-4).substr(3);
	}
	return s;
};

Parser["control:checkboxgroup:bootstrap-blue:Json2htmlParser:html"] = function(confs) {
	var s = "";
	for (var c in confs) {
		var conf = confs[c];
		var prop = conf.id ? Parser.props[conf.id] : {};
		Parser.log(JSON.stringify(conf));
		Parser.log(JSON.stringify(prop));
		Parser.parseDataProvider(conf.id);
		var required = Parser.parseValidator(conf.id);
		Parser.parseI18ntip(conf.id);
		var dpval = prop[prop["dataprovider"]];
		var data = {};
		data.id = conf.id;
		data.style = Parser.cssDisplay(prop.display)+(prop.style?prop.style:"")+(prop.margintop?"margin-top:"+prop.margintop:"");
		var transform = {"tag":"i"};
		var fmdcols = parseInt(conf.fmdcols);
		var cols = [1,fmdcols-1];
		if(fmdcols>3) {
			cols = [2,fmdcols-2];
		}
		transform.html = '<div class="col-md-'+cols[0]+'">'
		    + '<p'
		    + (prop["i18ntip-"+Parser.lang] ? (' title="'+prop["i18ntip-"+Parser.lang]+'"') : '')
		    + (prop.hideLabel=='1' ? ' style="display:none;"' : '')
		    + '>'+prop["i18nname-"+Parser.lang]
		    + (required ? '<span class="xh">*</span>' : '')
		    + (prop["i18ntip-"+Parser.lang] ? ('&nbsp;<i class="glyphicon glyphicon-question-sign"></i>') : '')
		    + '</p>'
		    + '</div>'
		    + '<div class="col-md-'+cols[1]+'">'
		    + '<div id="'+conf.id+'" databinding="'+ prop.databinding+ '" class="'+(prop.classNames ? prop.classNames : '')+'"'
		    + (data.style ? ' style="'+data.style+'"' : '')
		    +'>'
			+ '<label ng-repeat="i in m.enu[\''+conf.id+'\']" class="checkbox-inline" for="${id}">'
			+ '<input type="checkbox"' +
			(prop.disabled=='1' ? ' disabled="disabled"' : '')+
			' id="'+conf.id+'"'+
			//(prop.processbinding ? (' binding="'+ prop.processbinding+'"'):'')+
			' value="{{i[0]}}" onclick="fmdf.onchangeOfCheckboxgroup(event,\''+conf.id+'\')"' +
			'/><span class="ng-cloak1">{{i[1]}}</span></label>'+
			'</div></div>';
		var wrapper = json2html.transform(data, transform);
		s += wrapper.substr(0, wrapper.length-4).substr(3);
	}
	return s;
};
